#include<iostream>
#include<string>
#include"class_static_learn.h"

class Person {
    public:
        // 1.所有对象都共享同一份数据
        // 2编译阶段就分配内存
        // 3类内声明，类外初始化操作 
        // 4.静态成员变量也是有访问权限的
        // 5.静态成员变量可以通过类名访问，也可以通过对象访问
        static int age;
        static void func()
        {
            // 静态成员变量只能访问静态成员变量
            std::cout << "Person::age = " << age << std::endl;
        }
};

int Person::age = 100;

void class_static_learn(void)
{
    Person p1;
    std::cout << "p1.age = " << p1.age << std::endl;
    std::cout << "p1.age = " << p1.age << std::endl;
    std::cout << "p1.age = " << Person::age << std::endl;
    Person::func();
    p1.func();

}